const app = getApp();
//app.globalData.ServiceUrl = 'https://wx.xiangban365.com/';
let ServiceUrl = app.globalData.ServiceUrl;

Page({
  /**
   * 页面的初始数据
   */
  data: {
    getPhone:false,
    getInfo:true,
    openid:'',
    user_id:'',
    sessionKey:''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(ServiceUrl)
      var that=this;
          // 登录
          wx.login({
            success: res => {
              // 发送 res.code 到后台换取 openId, sessionKey, unionId
              console.log(res.code);
              wx.request({
                url: ServiceUrl + 'getOpenId',
                data: {code: res.code},
                method: 'GET',
                success:function(e){
                  //console.log(e.data.openid)
                  that.setData({
                    openid:e.data.openid,
                    sessionKey:e.data.session_key
                  });
                },
                fail:function(res){
                  wx.showModal({
                    title:"提示",
                    content:"发送请求失败",
                    showCancel: false,
                    confirmColor: 'skyblue',
                  })
                },
              });
            }
          });
          
             // 获取用户信息
             wx.getSetting({
              success: res => {
                if (res.authSetting['scope.userInfo']) {
                  // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
                  wx.getUserInfo({
                    success: res => {
                      // 可以将 res 发送给后台解码出 unionId
                      app.globalData.userInfo = res.userInfo
                      // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
                      // 所以此处加入 callback 以防止这种情况
                      if (that.userInfoReadyCallback) {
                        that.userInfoReadyCallback(res)
                      }
                    },
                    fail(){
                      console.log("用户已经拒绝了授权");
                    }
                  })
                }
              }
            })
            
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    wx.removeStorageSync('openid')
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  /**
   * 获取用户手机号 
   */
  getPhoneNumber: function (e) {
    var that = this;
    //console.log(e);
    let sessionKey=that.data.sessionKey;
    console.log(e);
    if (e.detail.errMsg == "getPhoneNumber:ok") {
      wx.request({
        url: ServiceUrl + 'getPhone',
        data: {
          encryptedData: e.detail.encryptedData,
          iv: e.detail.iv,
          session_key: sessionKey, 
        },
        method: "get",
        header: { 'content-type': 'application/json' },
        success: function (res) {
          //获取到手机号
          //console.log(app.globalData.userInfo.nickName)
          //将数据发送到服务器
          //console.log(sessionKey)
          wx.request({
            url: ServiceUrl + 'checkRole',
            data:{
              phone:res.data.phoneNumber,
              nick_name:app.globalData.userInfo.nickName,
              openid:that.data.openid,
              gender:app.globalData.userInfo.gender,
              session_key:that.data.sessionKey,
              avatar_url: app.globalData.userInfo.avatarUrl
            },
            method:"get",
            success:function(res){
              console.log(res);
              if(res.data.state == 200){
                wx.showLoading({
                  title: '登录中'
                });
                setTimeout(function () {
                  wx.hideLoading()
                  wx.redirectTo({
                    url: '../index/index?&user_id='+res.data.userInfo.user_id,
                  })
                }, 1500);
                
              }else{
                wx.showModal({
                  title: "提示",
                  content: "暂无您的信息,请联系公司负责人!",
                  showCancel: false,
                  confirmColor: 'skyblue',
                })
              }
            },
            fail:function(res){
              wx.showModal({
                title:"提示",
                content:"发送请求失败",
                showCancel: false,
                confirmColor: 'skyblue',
              })
            }
          })
        },
        fail:function(res){
          wx.showModal({
            title:"提示",
            content:"发送请求失败",
            showCancel: false,
            confirmColor: 'skyblue',
          })
        }
      })
    }else{
      //用户没有授权
    // console.log("用户没有授权");
      wx.showModal({
        title:'警告',
        content: '亲，只有登录后才能体验此小程序的功能哦，请选择授权或使用手机号进行登录！',
        showCancel: false,
        confirmColor: 'skyblue',
        confirmText: '返回授权',
        success: function(res){
          if(res.confirm){console.log('用户点击了返回授权')}
        }
      })
    }
  },
  //获取用户信息按钮回调方法
  getPerson:function(e)
  {
    //console.log(this.data.openid)
  //  console.log(e);
    let that = this
    wx.setStorageSync('openid', that.data.openid)
    console.log(e.detail.userInfo)
    if(e.detail.userInfo){
      //获取到用户信息
      app.globalData.userInfo = e.detail.userInfo;
      //判断数据库是否存在用户信息
      wx.request({
        url: ServiceUrl + 'checkLogin',
        data: {
          openid:that.data.openid,
          nick_name:e.detail.userInfo.nickName,
          gender: e.detail.userInfo.gender,
          avatar_url:e.detail.userInfo.avatarUrl
        },
        method:"get",
        header:{ 'content-type': 'application/json'},
        success:function(re){
          console.log('检查用户角色',re);
          if(re.data.state == 200){
            wx.showLoading({
              title: '登录中'
            });
                setTimeout(function () {
                  wx.hideLoading()
                  wx.redirectTo({
                    url: '../index/index?&user_id='+re.data.user_id,
                  })
                }, 1500);
          }else if(re.data.state == 400){
            //进行手机验证
            wx.showToast({
              title: re.data.msg,
              icon: 'none'
            });
            that.setData({
              getInfo: false,
              getPhone:true,
            });
          }
        },
        fail:function(res){
          console.log('(4)error');
          wx.showModal({
            title:"提示",
            content:"发送请求失败",
            showCancel: false,
            confirmColor: 'skyblue',
          })
        }
      })
        
    }else if(e.detail.errMsg != "getUserInfo:ok"){
      //用户没有授权
      console.log("用户没有授权");
      wx.showModal({
        title:'警告',
        content: '亲，只有登录后才能体验此小程序的功能哦，请选择授权或使用手机号进行登录！',
        showCancel: false,
        confirmColor: 'skyblue',
        confirmText: '返回授权',
        success: function(res){
          if(res.confirm){console.log('用户点击了返回授权')}
        }
      })
    }
  }

})